package com.okhttp.retrofit.mock;

import com.okhttp.utils.RetrofitLog;
import java.lang.reflect.Proxy;
import retrofit2.Retrofit;

/**
 * Mock 数据
 * 如做为单独mock jar包使用，可以使用Aop切面实现 android-aspectjx
 */
public class MockHook {

  /**
   * 使用反向代理创建请求service
   * @param retrofit
   * @param service
   * @param <T>
   * @return
   */
  public static <T> T createService(Retrofit retrofit,Class<T> service){
    RetrofitLog.d("MockHook","MockHook  createService >>> ");
    T api =retrofit.create(service);
    return (T) Proxy.newProxyInstance( service.getClassLoader(), new Class<?>[]{service}, new MockerHandler( retrofit, api ) );
  }

}
